// 引入API和DataTable
// 确保已加载 api.js 和 data-table.js

document.addEventListener('DOMContentLoaded', function() {
    // 初始化分类表格
    initCategoryTable();
});

// 初始化分类表格
function initCategoryTable() {
    // 先加载所有分类作为父分类选项
    axios.get('/categories')
        .then(response => {
            if (response.data.success) {
                const categories = response.data.data;
                
                // 分类表格列定义
                const categoryColumns = [
                    { field: 'id', title: '分类ID', readonly: true },
                    { field: 'categoryName', title: '分类名称' },
                    { field: 'description', title: '描述', type: 'textarea' },
                    { field: 'parentId', title: '父分类', type: 'select', 
                      options: [{ value: '', label: '无' }].concat(
                        categories.map(c => ({ value: c.id, label: c.categoryName }))
                      )
                    },
                    { field: 'displayOrder', title: '显示顺序', type: 'number' },
                ];
                
                // 初始化分类表格
                const categoryTable = new DataTable('category-content', categoryColumns, CategoryAPI);
            } else {
                console.error('加载分类数据失败:', response.data.message);
                // 即使加载失败，也初始化表格，但父分类选项为空
                initTableWithEmptyParents();
            }
        })
        .catch(error => {
            console.error('加载分类数据出错:', error);
            // 出错时也初始化表格，但父分类选项为空
            initTableWithEmptyParents();
        });
}

// 当无法加载父分类数据时，使用空选项初始化表格
function initTableWithEmptyParents() {
    const categoryColumns = [
        { field: 'id', title: '分类ID', readonly: true },
        { field: 'categoryName', title: '分类名称' },
        { field: 'description', title: '描述', type: 'textarea' },
        { field: 'parentId', title: '父分类', type: 'select', 
          options: [{ value: '', label: '无' }]
        },
        { field: 'displayOrder', title: '显示顺序', type: 'number' },
        { field: 'icon', title: '图标', type: 'image' }
    ];
    
    const categoryTable = new DataTable('category-content', categoryColumns, CategoryAPI);
}